package com.itts.common.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("project")
public class Project implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 项目名称
     */
    private String name;
    /**
     * 项目简称
     */
    private String shortName;
    /**
     * 建设单位
     */
    private Integer constructionUnit;
    /**
     * 代建单位
     */
    private Integer daijianUnit;
    /**
     * 勘察单位
     */
    private Integer kanchaUnit;
    /**
     * 设计单位
     */
    private Integer designUnit;
    /**
     * 监理单位
     */
    private Integer supervisorUnit;
    /**
     * 总承包施工单位
     */
    private Integer generalUnit;
    /**
     * 专业分包
     */
    private Integer zhuanyeUnit;
    /**
     * 总部管理员ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long adminId;


    /**
     * 建筑类型
     */
    private String buildingType;
    /**
     * 建筑面积
     */
    private String area;
    /**
     * 合同金额
     */
    private String amount;
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;
    /**
     * 计划结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
    /**
     * 状态 1在建2竣工
     */
    private Integer status;
    /**
     * 项目级别
     */
    private Integer level;
    /**
     * 项目描述
     */
    private String detail;
    /**
     * 省
     */
    private String province;
    /**
     * 市
     */
    private String city;
    /**
     * 区
     */
    private String qu;
    /**
     * 经度
     */
    private String longitude;
    /**
     * 纬度
     */
    private String latitude;
    /**
     * 工地图纸
     */
    private Long mapFileId;
    /**
     * 项目展示图
     */
    private Long showFileId;
    /**
     * 项目接入
     */
    private String access;
    /**
     * 创建时间
     */
    private Date createDate;
    /**
     * 创建者ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long createId;
    /**
     * 更新时间
     */
    private Date updateDate;
    /**
     * 更新者ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long updateId;
    /**
     *
     */
    private Integer isDel;
    /**
     * 停车场编号
     */
    private String parkNumber;

    /**
     * 大运接口返回的编号
     */
    private String dayunId;

    /**
     * 是否部署在大运平台:1是 0否
     */
    private Integer dayunType;

    /**
     * 合同编号
     */
    private String contractNumber;

    /**
     * 企业名称
     */
    private String companyName;

    /**
     * 统一社会信用代码
     */
    private String companyNo;

    /**
     * 企业联系人
     */
    private String companyPerson;

    /**
     * 企业联系电话
     */
    private String companyPhone;

    /**
     * 参建类型
     */
    private String canJianType;

    /**
     * 建设单位名称
     */
    private String buildName;

    /**
     * 建设单位社会信用代码
     */
    private String buildNo;

    /**
     * 建设单位联系人
     */
    private String buildPerson;

    /**
     * 建设单位联系电话
     */
    private String buildPhone;

    /**
     * 阿里云视频监控空间ID
     */
    private String aliJkId;

    /**
     * 省平台数据指纹
     */
    private String qyDataNumber;

    /**
     * 省平台备案号
     */
    private String qyBagsbh;
    /**
     * 归属公司
     */
    private Long belongToDeptId;

    /**
     * 鼎思平台项目编号
     */
    private String dingSiProjectNum;

    /**
     * 项目监督备案号
     * */
    private String supervisoryRecordNo;
    /**
     * 是否开启卡号 1是 0否
     */
    private Integer cardStatus;

    public void setId(Integer id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setShortName(String shortName) {
        this.shortName = shortName;
    }

    public void setConstructionUnit(Integer constructionUnit) {
        this.constructionUnit = constructionUnit;
    }

    public void setDaijianUnit(Integer daijianUnit) {
        this.daijianUnit = daijianUnit;
    }

    public void setKanchaUnit(Integer kanchaUnit) {
        this.kanchaUnit = kanchaUnit;
    }

    public void setDesignUnit(Integer designUnit) {
        this.designUnit = designUnit;
    }

    public void setSupervisorUnit(Integer supervisorUnit) {
        this.supervisorUnit = supervisorUnit;
    }

    public void setGeneralUnit(Integer generalUnit) {
        this.generalUnit = generalUnit;
    }

    public void setZhuanyeUnit(Integer zhuanyeUnit) {
        this.zhuanyeUnit = zhuanyeUnit;
    }

    public void setAdminId(Long adminId) {
        this.adminId = adminId;
    }

    public void setBuildingType(String buildingType) {
        this.buildingType = buildingType;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public void setQu(String qu) {
        this.qu = qu;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public void setMapFileId(Long mapFileId) {
        this.mapFileId = mapFileId;
    }

    public void setShowFileId(Long showFileId) {
        this.showFileId = showFileId;
    }

    public void setAccess(String access) {
        this.access = access;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public void setCreateId(Long createId) {
        this.createId = createId;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public void setUpdateId(Long updateId) {
        this.updateId = updateId;
    }

    public void setIsDel(Integer isDel) {
        this.isDel = isDel;
    }

    public void setParkNumber(String parkNumber) {
        this.parkNumber = parkNumber;
    }

    public void setDayunId(String dayunId) {
        this.dayunId = dayunId;
    }

    public void setDayunType(Integer dayunType) {
        this.dayunType = dayunType;
    }

    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public void setCompanyNo(String companyNo) {
        this.companyNo = companyNo;
    }

    public void setCompanyPerson(String companyPerson) {
        this.companyPerson = companyPerson;
    }

    public void setCompanyPhone(String companyPhone) {
        this.companyPhone = companyPhone;
    }

    public void setCanJianType(String canJianType) {
        this.canJianType = canJianType;
    }

    public void setBuildName(String buildName) {
        this.buildName = buildName;
    }

    public void setBuildNo(String buildNo) {
        this.buildNo = buildNo;
    }

    public void setBuildPerson(String buildPerson) {
        this.buildPerson = buildPerson;
    }

    public void setBuildPhone(String buildPhone) {
        this.buildPhone = buildPhone;
    }

    public void setAliJkId(String aliJkId) {
        this.aliJkId = aliJkId;
    }

    public void setQyDataNumber(String qyDataNumber) {
        this.qyDataNumber = qyDataNumber;
    }

    public void setQyBagsbh(String qyBagsbh) {
        this.qyBagsbh = qyBagsbh;
    }

    public void setBelongToDeptId(Long belongToDeptId) {
        this.belongToDeptId = belongToDeptId;
    }

    public void setDingSiProjectNum(String dingSiProjectNum) {
        this.dingSiProjectNum = dingSiProjectNum;
    }

    public void setSupervisoryRecordNo(String supervisoryRecordNo) {
        this.supervisoryRecordNo = supervisoryRecordNo;
    }

    public void setCardStatus(Integer cardStatus) {
        this.cardStatus = cardStatus;
    }
}
